package xyz.xtt.asset.constants;

import lombok.Getter;
import xyz.xtt.common.exception.BaseMessage;

/**
 * 通通链操作错误信息类
 * 
 * @author huqibo
 */
/**
 * @author huqibo
 * @date 2025/02/10
 */
@Getter
public enum ErrorMessage implements BaseMessage {

	/**
	 * unknown error
	 */
	UNKNOWN_ERROR(9999, "unknown error"),
	/**
	 * 参数错误
	 */
	ARGUMENT_NOT_VALID(1, "参数错误"),
	/**
	 * 目标地皮不存在
	 */
	TARGET_GROUND_NOT_FOUND(2, "目标地皮不存在"),
	/**
	 * 目标地皮不存在
	 */
	TARGET_USER_EXIST(3, "目标用户不存在"),
	/**
	 * 用户不存在
	 */
	USER_NOT_EXIST(4, "用户不存在"),
	/**
	 * 用户需要认证
	 */
	NEED_AUTHENTICATION(5, "用户需要认证"),
	/**
	 * 内容审核错误次数太多
	 */
	TOTAL_REQUSET_DAY_LIMIT(15, "请求次数太多"),
	/**
	 * 不是拥有者
	 */
	ALLOWED_NOT_ME(20, "不是拥有者"),
	/**
	 * 资产不是下架状态
	 */
	ASSET_NOT_DOWN(22, "资产不是下架状态"),
	/**
	 * 资产不是下架状态
	 */
	ASSET_NOT_UP(23, "资产不是上架状态"),
	/**
	 * 不是铸造者
	 */
	NOT_AN_MINER(60, "不是铸造者"),
	/**
	 * 上架操作失败
	 */
	ASSET_SETTING_EX(61, "操作失败"),
	/**
	 * 预售期校验失败
	 */
	CHECK_PRE_SELL_EX(68, "预售期校验失败"),
	/**
	 * 上架需要满足铸造之后天数要求
	 */
	CREATED_DAYS_LIMIT(70, "上架需要满足铸造之后天数要求"),
	/**
	 * 历史购买价异常
	 */
	MAX_PRICE_HISTORY_EX(71, "历史购买价异常"),
	/**
	 * 售价不符合要求
	 */
	SELL_PRICE_EX(72, "定价不符合要求"),
	/**
	 * 售价不符合要求
	 */
	NOT_OWNER_NFT_ASSET(73, "非资产中心数据不允许上架"),
	ASSET_NOT_SELL_PATTERN(74,"暂不支持售卖"),

	/**
	 * 目标资产不存在
	 */
	ASSET_NOT_EXIST(1000, "目标资产不存在"),
	/**
	 * 用户不存在
	 */
	USER_INFO_NOT_EXIST(1001, "用户不存在"),
	/**
	 * 转出用户不存在
	 */
	TRANSFER_OUT_USER_NOT_EXIST(1002, "请先铸造"),
	/**
	 * 剩余数量不足
	 */
	ACCOUNT_LOCK(1003, "帐户被锁定"),
	/**
	 * 剩余数量不足
	 */
	INSUFFICIENT_BALANCE(1004, "剩余数量不足"),

	/**
	 * 不支持的帐户协议类型
	 */
	UNSUPPORTED_REFER_PROTOCOL(1005, "不支持的帐户协议类型"),
	/**
	 * 不支持的帐户协议类型
	 */
	ENTITLEMENT_DELIVER(1006, "对应的权益已兑换"),

	/**
	 * 对应的权益不存在
	 */
	ENTITLEMENT_NOT_EXIST(1007, "对应的权益不存在"),

	/**
	 * 對应的活动类型不存在
	 */
	ACTIVITIY_TYPE_NOT_EXIST(1008, "对应的活动类型不存在"),
	/**
	 * 划转失败
	 */
	TRANSFERFROM_FAIL(1009, "划转失败"),
	/**
	 * 上次操作结果为空
	 */
	BEFORE_RESULT_ISNULL(1010, "上次操作结果为空"),
	/**
	 * 上次交易记录不存在
	 */
	BEFORE_TRANSACTION_ISNULL(1011, "上次交易记录不存在"),
	/**
	 * 目标资产不存在
	 */
	ACCOUNT_NOT_EXIST(1012, "目标资产不存在"),
	/**
	 *
	 */
	ACCOUNT_REFER_PROTOCAL_NOT_SAME(1013, "帐户协议类型不同"),
	/**
	 *
	 */
	ACCOUNT_ASSET_NOT_SAME(1014, "帐户协议类型不同"),
	/**
	 * 不支持的协议类型
	 */
	UPSUPPORTED_PROTOCOL_TYPE(1015, "不支持的协议类型"),
	/**
	 * 不支持的协议类型
	 */
	TARGET_ASSET_EXIST(1016, "721协议类型目标资产已经存在"),
	/**
	 * 帐户初始化异常
	 */
	ACCOUNT_INIT_EXCEPTION(1017, "帐户初始化异常"),
	/**
	 * 帐户初始化异常
	 */
	MINT_EXCEPTION_WITH_AMOUNT(1018, "帐户初始化异常"),
	/**
	 * 目标资产不存在
	 */
	ASSET_EXIST(1019, "目标资产已存在"),
	/**
	 * 不支持的协议类型
	 */
	UN_SUPPORTED_ORDER_TYPE(1020, "不支持的订单类型"),
	/**
	 * 不支持的协议类型
	 */
	UN_SUPPORTED_EXPIRETIME_LEVEL(1021, "不支持的延时级别详见 RocketMessageDelayLevelEnum"), TRANSATION_CREATE_FAIL(1022, "创建易交订单失败"),
	/**
	 * 易交订单不存在
	 */
	TRANSATION_NOT_EXIST(1022, "交易订单不存在"),
	/**
	 * 交易交订单状态异常
	 */
	TRANSATION_STATE_EX(1023, "交易交订单状态异常"),
	/**
	 * 交易交订单状态异常
	 */
	CANCEL_ORDER_EX(1024, "取消订单异常"),

	/**
	 * 无效的碎片类型
	 */
	INVALID_FRAGMENT_TYPE(3019, "无效的碎片类型"),
	/**
	 * 操作失败
	 */
	FRAGMENT_DROP_FAIL(3020, "无效掉落失败"),
	/**
	 * 无效的动作类型
	 */
	INVALID_FRAGMENT_FROM_OPERATE(3021, "无效的动作类型"),

	ASSET_STATUS_EX(2001, "该资产暂不可售卖"), STOCK_NOT_ENOUGH(2002, "商品库存不足"), ORDER_REPEATED(2004, "存在未支付订单"), ORDER_CREATE_FAILED(2005, "创建订单失败"),
	ORDER_OPERATE_FAILED(2006, "订单操作失败"),
	/**
	 * 发起交易的双方不能是同一个人
	 */
	TRANSACTION_SAME_USER(2007, "发起交易的双方不能是同一个人"),

	/**
	 * 无效的数量
	 */
	INVALID_QUANTITY(2008, "无效的数量"),

	ORDER_ALREADY_PAID(2009, "订单已支付"),
	/**
	 * 批次数量太大
	 */
	BATCH_MNIT_SIZE_LARGE(2010, "批次数量太大"),

	/**
	 * 交易双方检查异常
	 */
	CHECK_TRANSACTION_EX(2011, "交易双方检查异常"), PAY_FUNCTION_NOT_ENABLE(2012, "支付功能未开启"), PAY_ORDER_NOT_EXISTS(2013, "支付单不存在"),
	PAY_ORDER_STATUS_EX(2014, "当前支付单状态不支持此操作"),
	/**
	 * 用户状态异常
	 */
	USER_STATUS_EX(2015, "用户状态异常"), CHECK_PAY_ORDER_STATUS_EX(2016, "检查支付中心订单状态异常"),
	/**
	 * 不支持的持有类型
	 */
	OWNER_TYPE_ERR(2017, "不支持的持有类型"),
	/**
	 * 不支持的资产类型
	 */
	ASSET_TYPE_ERR(2018, "不支持的资产类型"),
	/**
	 * 不支持的业务线类型
	 */
	BIZ_TYPE_ERR(2019, "不支持的业务线类型"),
	/**
	 * 不支持的业务线类型
	 */
	NOT_ASSET_MINER(2020, "不是铸造者"),
	/**
	 * 不支持的业务线类型
	 */
	ORDER_TYPE_ERR(2021, "不支持的订单类型"),
	/**
	 * 不支持的业务线类型
	 */
	GIFT_OPERATOR_ERR(2022, "赠送操作失败"),
	/**
	 * 非好友关系
	 */
	NO_FRIEND_RELATION(2023, "非好友关系"),
	/**
	 * 创建群异常
	 */
	CREATE_GROUP_EX(2024, "创建群异常"),
	/**
	 * 加入群异常
	 */
	JOIN_GROUP_EX(2025, "加入群异常"),
	/**
	 * 加入群异常
	 */
	GIFT_SEND_LIMIT_EX(2026, "赠送超过上限"),
	/**
	 * 检查好友关系异常
	 */
	CHECK_FRIEND_EX(2027, "检查好友关系异常"),
	/**
	 * 补发卡片异常
	 */
	SEND_CARD_EX(2028, "补发卡片异常"),

	/**
	 * 资产审核异常
	 */
	ASSET_AUDIT_EX(2029, "资产审核异常"),
	/**
	 * 铸造玫瑰资产失败
	 */
	ROSE_MINT_EX(2030, "铸造玫瑰资产失败"),

	/**
	 * 保存资产基础信息出现异常
	 */
	CREATE_EX(2031, "保存资产基础信息出现异常"),
	/**
	 * 铸造资产出现异常
	 */
	MINT_EX(2032, "铸造资产出现异常"),
	/**
	 * 错误码
	 */
	THIRD_RECEIVE_ISBLANK(2033, "接收到的数据是空的"),

	/**
	 * 参数转换异常
	 */
	THIRD_PARAM_ISNULL(2034, "参数转换异常"),

	/**
	 * 订单已存在
	 */
	THIRD_ORDER_EXIST(2035, "订单已存在"),

	/**
	 * 订单已存在
	 */
	THIRD_ORDER_SAVE_EX(2036, "保存订单失败"),
	/**
	 * 订单已存在
	 */
	THIRD_ORDER_CONFIG_EX(2037, "configId未配置"),
	/**
	 * 订单已存在
	 */
	THIRD_ORDER_SIGN_EX(2038, "签名检查异常"),
	/**
	 * 订单已存在
	 */
	THIRD_ORDER_PHONR_EX(2039, "错误的手机号"),
	/**
	 * 不在可售卖的时间范围
	 */
	ASSERT_SELL_DATE_PERIOD(2040, "不在可售卖的时间范围"),
	/**
	 * 订单已存在
	 */
	USER_REG_EX(2041, "用户注册失败"),
	/**
	 * 加入群异常
	 */
	GIFT_RECV_LIMIT_EX(2042, "目标人接收超过上限"),
	/**
	 * 加入群异常
	 */
	THIRD_ORDER_MSG_EX(2043, "处理三方订单异常"),
	/**
	 * 加入群异常
	 */
	NOT_CHAIN_UP(2044, "未上链资产不允许赠送"), BUY_DAILY_LIMIT_EX(2045, "超过用户当天可购买总金额上限"), BUY_TOTAL_LIMIT_EX(2046, "超过用户可购买总金额上限"),
	SELL_DAILY_LIMIT_EX(2047, "超出卖方当天可交易金额上限"), SELL_TOTAL_LIMIT_EX(2048, "超出卖方可交易金额上限"), BUY_SPEND_FACE_AUTH_THRESHOLD_ARRIVED(2049, "当日交易额度过高需要进行人脸识别"),
	ASSET_CONFIG_NOT_EXIST(2050, "资产配置信息不存在"), ASSET_CONFIG_LOG_NOT_EXIST(2051, "资产配置日志不存在"), ASSET_PRICE_CHANGED(2052, "资产价格和日志记录不一致"),
	ASSET_NOT_PUBLICIZED(2053, "资产未公示"), ASSET_NOT_START_SALE(2054, "资产尚未开始售卖"), NEED_PRE_PURCHASE_BENEFIT(2055, "需要购买vip以获取预先购买权"),
	CAN_NOT_BUY_SELF(2056, "不能购买自己资产"), RELEASE_PAY_LIMIT_FAILED(2057, "取消订单释放限额失败"),
	/**
	 * 重铸操作失败
	 */
	REMAINT_OPERATOR_FAIL(2058, "重铸操作失败"),
	/**
	 * 没有铸作权
	 */
	REMAINT_NOT_EXIST(2059, "没有铸作权"),
	/**
	 * 作废操作失败
	 */
	DESTORY_OPERATOR_FAIL(2060, "作废操作失败"),
	/**
	 * 生成卡片失败
	 */
	GEN_CARD_FAIL(2061, "生成卡片失败"),
	/**
	 * 生成卡片失败
	 */
	REMAINT_ACCOUNT_STATE_EX(2062, "铸造权帐户异常"), ASSET_CARD_RECEIVED(2063, "实物卡片已经被领取过"), ASSET_CARD_DESTROYED(2064, "实物卡片已经被销毁"),
	INVALID_SPLIT_ACCOUNT_DATA(2065, "无效的分账数据"), UPDATE_USER_FUND_ACCOUNT_FAILED(2066, "更新用户余额账户失败"), USER_FUND_RECORD_NOT_EXIST(2067, "账户交易记录不存在"),
	SELLER_FUND_CAN_NOT_BE_SETTLED(2068, "卖方资金暂不能结算"), USER_FUND_ACCOUNT_NOT_EXIST(2069, "用户资金账户不存在"), USER_FUND_ACCOUNT_DATA_ERROR(2070, "用户资金账户数据异常"),
	ASSET_NOT_GIFT(2071, "资产不可赠送"),
	ASSET_NO_ERROR(2072, "资产订单编号不存在"),
	ASSET_NO_LOCK(20273, "资产编号锁定中"),
	ASSET_NO_ADD_ERROR(2074, "资产编号创建失败"),
	ASSET_NO_UPDATE_ERROR(2075, "资产编号修改失败"),
	ASSET_NO_LOCK_ERROR(20276, "资产编号锁定失败"),
	Asset_NO_TRANSRECORD_UPDATE_ERROR(2076, "资产编号交易修改失败"),
	Asset_BOX_FILE_LIST_ISNULL(2077, "盲盒文件列表为空"),
	Asset_BOX_PUSH_PACKIGE_ERROR(2078, "盲盒权益包新增失败"),
	ASSET_MINT_TYPE_ERR(2079,"资产类型错误"),
	COPYRIGHT_CANNOT_BE_EMPTY(3000, "版权信息不能为空" ),
//	COPYRIGHT_ORIGINAL_CANNOT_BE_EMPTY(3001, "版权信息或原创声明至少传一项" ),

	/**
	 * 证书失效
	 */
	CODE_ERROR(3001, "证书失效"),

	PAY_ATTACH_ISNULL(30002, "支付单附加信息为空"),
	/**
	 * 盲盒购买数量异常
	 */
	PURCHASE_NUM_EX(30003, "盲盒购买数量异常"),
	/**
	 * 开盲盒失败
	 */
	BLIND_BOX_OPEN_EX(30004, "开盲盒失败"),
	/**
	 * 重复的交易订单号
	 */
	REPEAT_TRANSACTION_ORDER_NO(30005, "重复的交易订单号"),
	/**
	 * 非资产类交易
	 */
	NOT_ASSET_EXCHAGE(30006, "非资产类交易"), BENEFIT_PACKAGE_ERR(3007, "不支持的权益包类型"), REPEAT_REQUEST(3008, "重复请求"),
	/**
	 * 作为模板的类型必须是721协议
	 */
	TEMPLATE_MINT_WITH_721(3008, "协议类型不是721"),
	/**
	 * 转移后续动作失败
	 */
	ACTION_TYPE_CHECK(3009, "不支持的操作类型"),
	/**
	 * 转移后续动作失败
	 */
	TRANSFTER_ACTION_EX(3010, "转移后续动作失败"),
	/**
	 * 销毁操作失败
	 */
	BURN_OPERATORO_EX(3011, "销毁操作失败"),
	/**
	 * 操作非归属平台资产失败
	 */
	BIZ_TYPE_NOT_OWN(3012, "操作非归属平台资产失败"),
    BUSINESS_ORDER_NOT_EXISTS(3012,"业务订单不存在" ), 
	BUSINESS_ORDER_STATUS_EX(3013,"业务订单状态异常"),
	ASSET_AUDIT_NOT_EXISTS(3014, "资产审核信息不存在"),
	ASSET_NO_NOT_EXIST(3015, "资产编号不存在"),
	ASSET_NO_NOT_OWN(3016, "资产编号不属于当前用户"),
	ASSET_NO_STATUS_ERROR(3017, "资产编号状态异常"),
	ASSET_CARD_RECEIVE_FAILED(3018, "资产卡片领取失败"),
	ASSET_ACCOUNT_NOT_EXIST(3019,"资产账户不存在"),
	SELF_PURCHASE_ERROR(3020, "不能购买自己的藏品"),
	ASSET_NOT_SELLABLE(3021, "资产不可售卖"),;

	/**
	 * 错误码
	 */
	private final Integer code;

	/**
	 * 提示内容
	 */
	private final String message;

	ErrorMessage(Integer code, String message) {
		this.code = code;
		this.message = message;
	}
}
